package adapter.main;

import adapter.main.power.AbsBasePower;
import adapter.main.power.v12.IPower12;

/**
 * 使用对象适配器模式：通过构造方法将外部的电源类传入适配器中，然后转换成我们期望的12V电源
 */
public class AdapterPower12 implements IPower12 {
    //待转换对象
    private final AbsBasePower absBasePower;

    //适配器构造方法,将待转换对象传入
    public AdapterPower12(AbsBasePower absBasePower) {
        this.absBasePower = absBasePower;
    }

    @Override
    public void output12v() {
        //获得外部电源值
        float powerFloat = this.absBasePower.getPower();
        //进行电源转换
        if (powerFloat == 380) {
            //380V电源转换
            powerFloat = powerFloat / 21.67f;
        } else if (powerFloat == 220) {
            powerFloat = powerFloat / 18.33f;
        } else if (powerFloat == 110) {
            powerFloat = powerFloat / 9.17f;
        } else {
            System.out.println("没有找到适配电源");
            return;
        }
        powerFloat = (int) (powerFloat * 10) / 10.0f;
        //处理转换结果
        System.out.println(String.format("这是%.1f%s的电源", powerFloat, this.absBasePower.getUnit()));
    }
}
